package com.gofaraway.service.facade.response;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author ChenPeng
 * @Date 2024/1/18 16:32
 */
@Data
public class ShipmentResponse implements Serializable {

    /**
     * 运输任务号
     */
    @ExcelProperty("运输任务号")
    private String shipmentNo;

    /**
     * 运输任务状态
     */
    @ExcelProperty("运输状态")
    private String shipmentStatusName;

    /**
     * 任务考勤状态名称
     */
    @ExcelProperty("任务考勤状态")
    private String shipmentConfirmStatusName;

    /**
     * 费用状态 枚举
     */
    @ExcelProperty("费用状态")
    private String rateStatusName;


    /**
     * 生效/失效
     */
    @ExcelProperty("是否生效")
    private String disabledName;


    /**
     * 运输任务类型名称
     */
    @ExcelProperty("运输任务类型")
    private String shipmentType1Name;


    /**
     * 干线任务名称
     */
    @ExcelProperty("干线任务名称")
    private String shipmentName;


    /**
     * 车牌号
     */
    @ExcelProperty("车牌号")
    private String vehicleNo;

    /**
     * 挂车号
     */
    @ExcelProperty("挂车号")
    private String trailerNo;


    /**
     * 始发站点名称
     */
    @ExcelProperty("始发站点")
    private String originName;

    /**
     * 计划出发时间
     */
    @ExcelProperty("规定发车时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date planDepartureTime;


    /**
     * 实际出发时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty("实际发车时间")
    private Date actualDepartureTime;

    /**
     * 目的站点名称
     */
    @ExcelProperty("目的站点")
    private String destName;


    /**
     * 计划到达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty("规定到达时间")
    private Date planArrivalTime;


    /**
     * 实际到达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty("实际到达时间")
    private Date actualArrivalTime;



    /**
     * 司机名称
     */
    @ExcelProperty("司机")
    private String driver1Name;

    /**
     * 司机电话
     */
    @ExcelProperty("司机电话")
    private String driver1Tel;


    /**
     * 副驾名称
     */
    @ExcelProperty("副驾")
    private String driver2Name;

    /**
     * 副驾电话
     */
    @ExcelProperty("副驾电话")
    private String driver2Tel;


    /**
     * 承运商名称
     */
    @ExcelProperty("承运商名称")
    private String carrierName;


    /**
     * 任务插入操作人
     */
    @ExcelProperty("创建时间")
    private String insertUser;

    /**
     * 任务录入时间
     */
    @ExcelProperty("修改人")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertDate;

    /**
     * 任务更新操作人
     */
    @ExcelProperty("修改人")
    private String updateUser;

    /**
     * 任务更新时间
     */
    @ExcelProperty("修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateDate;

    /**
     * 运输状态
     */
    @ExcelIgnore
    private String shipmentStatus;

    /**
     * 任务考勤状态Code 0-待确认 10-考勤确认 20-审核通过 5-驳回
     */
    @ExcelIgnore
    private String shipmentConfirmStatus;

    /**
     * 费用状态
     */
    @ExcelIgnore
    private String rateStatus;

    /**
     * 是否失效
     */
    @ExcelIgnore
    private Integer disabled;

    /**
     * 始发站点编号
     */
    @ExcelIgnore
    private String orgin;

    /**
     * 目的站点编码
     */
    @ExcelIgnore
    private String dest;

    /**
     * 司机编号
     */
    @ExcelIgnore
    private String driver1;


    /**
     * 副驾编号
     */
    @ExcelIgnore
    private String driver2;

    /**
     * 任务审核发起人
     */
    @ExcelIgnore
    private String applyInsertUser;

    /**
     * 任务审核人
     */
    @ExcelIgnore
    private String applyUser;

    /**
     * 审核拒绝时间
     */
    @ExcelIgnore
    private String applyRefuseDate;

    /**
     * 审核通过时间
     */
    @ExcelIgnore
    private String applyPassDate;

    /**
     * 审核发起编号
     */
    @ExcelIgnore
    private String applyId;

    /**
     * 审核发起状态 10-待处理 20-审核通过 30-审核驳回
     */
    @ExcelIgnore
    private String applyStatus;

    /**
     * 任务考勤编号
     */
    @ExcelIgnore
    private String confirmId;

    /**
     * 版本号
     */
    @ExcelIgnore
    private Integer version;

    /**
     * 运输任务类型
     */
    @ExcelIgnore
    private String shipmentType1;

    /**
     * 运输任务车辆类型「单挂类型」
     */
    @ExcelIgnore
    private String shipmentType2;


    /**
     * 审核发起状态名称
     */
    @ExcelIgnore
    private String applyStatusName;

    /**
     * 货箱类型名称
     */
    @ExcelIgnore
    private String shipmentType2Name;



    /**
     * 车型组
     */
    @ExcelIgnore
    private Integer vehicleTypeGroup;

    /**
     * 车型组名称
     */
    @ExcelIgnore
    private String vehicleTypeGroupName;

    /**
     * 运输完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelIgnore
    private Date finishTime;


    /**
     * 是否空驶
     * 1 空驶，0 否 ，null 无法计算
     */
    @ExcelIgnore
    private Integer emptyDriving;

    /**
     * 总里程
     */
    @ExcelIgnore
    private BigDecimal distance;
}
